﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Entidades.Seguridad;

namespace Vista.Seguridad
{
    public partial class FormCambiarClave : Form
    {
        private Entidades.Seguridad.Usuario _Usuario;
        private static FormCambiarClave instancia;

        public static FormCambiarClave obtener_instancia(Entidades.Seguridad.Usuario oUsuario)
        {
            if (instancia == null)
                instancia = new FormCambiarClave(oUsuario);
            if (instancia.IsDisposed)
                instancia = new FormCambiarClave(oUsuario);

            return instancia;
        }

        public FormCambiarClave(Entidades.Seguridad.Usuario oUsuario)
        {
            InitializeComponent();
            _Usuario = new Usuario();
            _Usuario = oUsuario;
        }

        private void btnguardar_Click(object sender, EventArgs e)
        {
            if (ValidarDatos())
            {
                if (Controladora.Seguridad.CUCambiarClave.ObtenerInstancia().CambiaClave(txtclaveActual.Text,txtClaveNueva1.Text, _Usuario))
                {
                    MessageBox.Show("Se modifico la clave correctamente.");
                    this.Close();
                }
                else
                {
                    MessageBox.Show("Se produjo un error al modificar la clave, contactarse con el administrador para más ayuda.");
                    this.Close();
                }
            }
        }
        

        private bool ValidarDatos()
        {
            if (this.txtclaveActual.Text.Trim() == "")
            {
                this.txtclaveActual.Focus();
                MessageBox.Show("Debe completar el campo Clave Actual");
                return false;
            }
            else if (this.txtClaveNueva1.Text.Trim() == "")
            {
                this.txtClaveNueva1.Focus();
                MessageBox.Show("Debe completar el campo Clave Nueva");
                return false;
            }
            else if (this.txtClaveNueva2.Text.Trim() == "")
            {
                this.txtClaveNueva2.Focus();
                MessageBox.Show("Debe completar el campo Repetir Clave Nueva");
                return false;
            }
            else if (this.txtClaveNueva1.Text != this.txtClaveNueva2.Text)
            {
                this.txtClaveNueva1.Focus();
                MessageBox.Show("Las claves nuevas ingresadas son distintas.");
                this.txtClaveNueva1.Clear();
                this.txtClaveNueva2.Clear();
                return false;
            }
            return true;
        }

        private void button1_Click(object sender, EventArgs e)
        {
            this.Close();
        }
    }
}
